The present invention relates generally to the field of diagnostic equipment, testers and analyzers for use with communication interfaces among computing devices. More specifically, the present invention relates to an integrated multi-channel analyzer for a Fibre Channel network that provides coordinated and cooperative triggering and capture of data across multiple channels.
Analyzers are used as diagnostic and testing tools at various stages of the development, integration and maintenance of electronic computing devices. Typically, an analyzer is designed for use with a particular electrical communication interface protocol, such as ATA, SCSI, Ethernet or Fibre Channel. In a typical use, the analyzer is connected to one or two ports of the communication interface of the computing system being tested to record communication activity on the interface. The communication activity is captured and recorded in a dedicated trace buffer associated with the analyzer, and then analyzed and/or presented to the user for the purpose of diagnosing, testing or maintaining the communication interface.
Analyzers designed for the Fibre Channel protocol must overcome significant technical challenges due to the extremely high bandwidth and high data transfer rates that are supported by the Fibre Channel communication interface. Examples of existing Fibre Channel protocol analyzers include the I-Tech IFC-20 Fibre Channel Analyzer, the Xyratex TP-5-100-PA+ Fibre Channel Protocol Analyzer Plus, the Ancot FCA-5010 Fibre Channel Analyzer, the FuturePlus Systems Fibre Channel Bus Analysis Probe, and the Finisar GT-A Fibre Channel Protocol Analyzer. In each of these Fibre Channel protocol analyzers, the analyzer is provided with a pair of channels that connect to the input and output ports, respectively, of a single computing device on the interface. These analyzers are equipped with various triggering, filtering and capture mechanisms that are designed to identify, capture and store the data of interest at the particular device to which the analyzer is connected. While it is conventional to refer to an analyzer as being xe2x80x9ctriggeredxe2x80x9d in order to capture the data of interest, it should be understood that what the analyzer actually does is continuously store all of the data going by the analyzer, and then the signal to xe2x80x9ctriggerxe2x80x9d the analyzer effectively stops this continuous capture so that the data remaining in the buffer of the analyzer is the data of interest. Once captured, the data can then be analyzed to determine the source of problems in the communication interface for that particular device or to optimize the performance of the communication interface for that particular device.
While existing Fibre Channel analyzers work well at debugging communication protocol problems at the particular device to which the analyzer is connected, they do not work well to track down problems or to optimize the communication interface across multiple computing devices in a large Fibre Channel network. Large Fibre Channel network installations can consist of tens to hundreds of computing devices linked over many miles of communication cables and often located at sites that are physically distant from one another. Because of the existing limitation in current Fibre Channel analyzers of only being able to connect to the input and output ports of a single device, analysis of a problem in a large Fibre Channel network requires the use of multiple analyzers. Unfortunately, there is no convenient way of integrating the data from multiple ones of these analyzers in order to make the analysis and presentation of data about such a problem a simple or straightforward matter.
In the I-Tech-IFC-20 Fibre Channel analyzer, for example, monitoring of more than a single device requires the use of multiple analyzers. All of the analyzers must be independently connected to each of the multiple devices and must be independently programmed for triggering and filtering conditions. In order to allow one analyzer to trigger another analyzer to capture data, a trigger sync out of the first analyzer must be connected to a trigger sync in of the second analyzer. Although it is possible to arrange multiple analyzers in this manner, it is difficult and time consuming to set up because the analyzers are not designed for any type of coordinated arrangement. Moreover, it has been discovered that the kinds of problems encountered in large complex multi-device Fibre Channel communication networks are very often too complicated for such a simplistic arrangement as having a trigger sync out signal of one analyzer connected to the trigger sync in signal of a second analyzer. For example, in Fibre Channel networks that allow for multiple paths over which data packets may travel between a source and destination, monitoring the actual path that any given data packet may be taking becomes less and less predictable as the complexity of the network interconnections increases.
Once this type of multiple analyzer arrangement in the prior art has been set up and triggered, data from the two analyzers is time correlated by a time stamping arrangement to allow for comparison by a host processor of data captured by the pair of channels in the first analyzer with the data captured by the pair of channels in the second analyzer. The time stamped data is then separately downloaded from each analyzer and the host processor is used to correlate arid evaluate the captured data. Examples of the use of time stamping to coordinate multiple communication analyzers for communication interfaces other than a Fibre Channel protocol are shown in U.S. Pat. Nos. 5,535,193 and 5,590,116. U.S. Pat. Nos. 5,276,579 and 5,375,159 describe examples of protocol analyzers for telecommunication data networks that include the ability to remotely operate and coordinate the analyzers. U.S. Pat. No. 5,600,632 describes performance monitoring using synchronized network analyzers in which the data from all of the analyzers is aggregated and sorted chronologically before it is analyzed.
While existing Fibre Channel analyzers are adequate for trouble shooting single Fibre Channel devices, there is a need for a Fibre Channel analyzer that addresses the problems of existing Fibre Channel analyzers when attempting to analyze complicated, large multi-device Fibre Channel networks and provides for a more integrated solution to analyzing large and complicated Fibre Channel networks.
The present invention is an integrated multi-channel Fibre Channel analyzer that provides coordinated and cooperative triggering and capture of data across multiple channels in a Fibre Channel network. The integrated multi-channel analyzer accommodates up to sixteen separate analyzer channels in a single cabinet. Each analyzer channel is comprised of an input port connection to the Fibre Channel network, a trace buffer memory that captures data and logic circuitry that controls the operation of the trace buffer memory in response to a status condition. A high speed status bus is connected to each analyzer channel and propagates the status conditions of each analyzer channel to all other analyzer channels. In this way, the integrated multi-channel analyzer allows for distributive control over triggering decisions across multiple analyzer channels, and also allows for multi-level triggering where different conditions may be detected by different analyzer channels.
Analysis of the data captured by the integrated multi-channel analyzer is enhanced by a processor resident in the cabinet that is connected by a data/control bus to each analyzer channel and its associated trace buffer memory. The resident processor receives high level commands from a remote host processor and coordinates the way in which the analyzer channels are configured to monitor the Fibre Channel network. Once trace data is captured in one or more of the trace buffer memories, the resident processor coordinates the transfer of relevant portions of the trace data to the remote host processor. To reduce the amount of data that must be transferred to the remote host processor, each analyzer channel preferably includes a hardware search engine that can quickly and efficiently identify relevant data patterns in the trace buffer memory. Once the trace data has been captured in the trace buffer memories, the resident processor initiates a time indexing routine that uses the hardware search engine in each analyzer channel to index the trace data for that analyzer channel.
Because all of the trace data in all of the analyzer channels has utilized a common clock to establish the time stamping, the resident processor can quickly identify and download data segments from the trace buffer memories of different analyzer channels to the remote host processor without the need for an intermediate step of time stamp synchronizing this data. In addition, the resident processor is capable of performing initial analysis on the trace data internal to the multi-channel analyzer. These distilled results of the analysis may be communicated from the resident processor to the remote host processor over a relatively small bandwidth communication channel, such as an Ethernet connection, without the need for a large bandwidth communication channel in order to download massive amounts of raw data to the host processor as was required in the prior art. Moreover, the use of a common clock for storing the trace data removes the burden on the host processor of time-stamp collating this massive amount of raw data based only on the coordination of periodic sync pulses as provided for in the prior art.
Preferably, the analyzer channels of the multi-channel analyzer are configured with two analyzer channels per analysis logic card with a local bus on the analysis logic card providing cross access between the input port and trace buffer memories of both analyzer channels. The logic circuitry of each analyzer channel also preferably comprises a pair of field programmable gate arrays that implement a trac engine that controls triggering and operation of the analyzer channel and a memory control/filtering function gate array that controls memory access and filtering functions performed by the analyzer channel. The trac engine is preferably comprised of a pair of trac processors that each execute a unique set of analyzer instructions downloaded from the resident processor. Unlike existing analyzers, the trac engine provides for enhanced flexibility by allowing the analyzer instructions to be assembled and organized in such a manner as to allocate varying amounts of the functionality of each trac processor to monitor for different conditions. The utilization of two trac processors per trac engine allows each analyzer channel to create more complex multi-level triggering conditions.
In a preferred embodiment, each analysis logic card is plugged into both a frontplane and a backplane. The frontplane interfaces the input port connection to the Fibre Channel network with the analyzer channel. The input port connection is preferably a module designed to interface to the particular Fibre Channel environment through industry standard converters. The backplane interfaces the analyzer channel with the high speed status bus and the data/control bus and on through to the resident processor. The backplane also provides a system-wide clock that is distributed to each analyzer channel, thereby solving the problem of the lack of a common time base which confronts the prior art when multiple analyzers are hand-wired together using only simplistic trigger out and trigger in signals. As a result, it is not necessary for the multi-channel analyzer of the present invention to time stamp collate trace data from different analyzer.